// $ANTLR 3.4 C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g 2012-10-24 19:32:41

    package practica6;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class AnasintANTLR extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ASTERISCO", "BLANCO", "COMILLA", "CONTENIDO", "DIGITO", "DOS_PUNTOS", "GRAMMAR", "HEADER", "IDENT", "IGUAL", "INTERROG", "LETRA_MAYUS", "LETRA_MINUS", "LEXER", "LLAVE_A", "LLAVE_C", "MEMBERS", "NUMERO", "OPTIONS", "OR", "PACKAGE", "PARENTESIS_A", "PARENTESIS_C", "PARSER", "PUNTO_COMA", "REGLA", "TOKEN"
    };

    public static final int EOF=-1;
    public static final int ASTERISCO=4;
    public static final int BLANCO=5;
    public static final int COMILLA=6;
    public static final int CONTENIDO=7;
    public static final int DIGITO=8;
    public static final int DOS_PUNTOS=9;
    public static final int GRAMMAR=10;
    public static final int HEADER=11;
    public static final int IDENT=12;
    public static final int IGUAL=13;
    public static final int INTERROG=14;
    public static final int LETRA_MAYUS=15;
    public static final int LETRA_MINUS=16;
    public static final int LEXER=17;
    public static final int LLAVE_A=18;
    public static final int LLAVE_C=19;
    public static final int MEMBERS=20;
    public static final int NUMERO=21;
    public static final int OPTIONS=22;
    public static final int OR=23;
    public static final int PACKAGE=24;
    public static final int PARENTESIS_A=25;
    public static final int PARENTESIS_C=26;
    public static final int PARSER=27;
    public static final int PUNTO_COMA=28;
    public static final int REGLA=29;
    public static final int TOKEN=30;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public AnasintANTLR(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public AnasintANTLR(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return AnasintANTLR.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g"; }


         private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
         public ArrayList<RecognitionException> getErrors() {
            return errors;
         }
         @Override
         public void reportError (RecognitionException e) {
            String msg = getErrorMessage(e, getTokenNames());
            System.err.println(msg);
            errors.add(e);
         }



    // $ANTLR start "entrada"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:1: entrada : analizador opciones ( cabecera )? ( reglas )* ;
    public final void entrada() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:8: ( analizador opciones ( cabecera )? ( reglas )* )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:10: analizador opciones ( cabecera )? ( reglas )*
            {
            pushFollow(FOLLOW_analizador_in_entrada47);
            analizador();

            state._fsp--;


            pushFollow(FOLLOW_opciones_in_entrada49);
            opciones();

            state._fsp--;


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:30: ( cabecera )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==HEADER) ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:30: cabecera
                    {
                    pushFollow(FOLLOW_cabecera_in_entrada51);
                    cabecera();

                    state._fsp--;


                    }
                    break;

            }


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:40: ( reglas )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==REGLA) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:26:40: reglas
            	    {
            	    pushFollow(FOLLOW_reglas_in_entrada54);
            	    reglas();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop2;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "entrada"



    // $ANTLR start "analizador"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:28:1: analizador : ( PARSER | LEXER ) GRAMMAR IDENT PUNTO_COMA ;
    public final void analizador() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:28:11: ( ( PARSER | LEXER ) GRAMMAR IDENT PUNTO_COMA )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:28:13: ( PARSER | LEXER ) GRAMMAR IDENT PUNTO_COMA
            {
            if ( input.LA(1)==LEXER||input.LA(1)==PARSER ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input,GRAMMAR,FOLLOW_GRAMMAR_in_analizador68); 

            match(input,IDENT,FOLLOW_IDENT_in_analizador70); 

            match(input,PUNTO_COMA,FOLLOW_PUNTO_COMA_in_analizador72); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "analizador"



    // $ANTLR start "opciones"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:30:1: opciones : OPTIONS LLAVE_A ( IDENT IGUAL IDENT PUNTO_COMA )* LLAVE_C ;
    public final void opciones() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:30:9: ( OPTIONS LLAVE_A ( IDENT IGUAL IDENT PUNTO_COMA )* LLAVE_C )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:30:11: OPTIONS LLAVE_A ( IDENT IGUAL IDENT PUNTO_COMA )* LLAVE_C
            {
            match(input,OPTIONS,FOLLOW_OPTIONS_in_opciones79); 

            match(input,LLAVE_A,FOLLOW_LLAVE_A_in_opciones81); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:30:27: ( IDENT IGUAL IDENT PUNTO_COMA )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==IDENT) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:30:28: IDENT IGUAL IDENT PUNTO_COMA
            	    {
            	    match(input,IDENT,FOLLOW_IDENT_in_opciones84); 

            	    match(input,IGUAL,FOLLOW_IGUAL_in_opciones86); 

            	    match(input,IDENT,FOLLOW_IDENT_in_opciones88); 

            	    match(input,PUNTO_COMA,FOLLOW_PUNTO_COMA_in_opciones90); 

            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);


            match(input,LLAVE_C,FOLLOW_LLAVE_C_in_opciones94); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "opciones"



    // $ANTLR start "cabecera"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:32:1: cabecera : HEADER LLAVE_A PACKAGE IDENT PUNTO_COMA LLAVE_C ;
    public final void cabecera() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:32:9: ( HEADER LLAVE_A PACKAGE IDENT PUNTO_COMA LLAVE_C )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:32:11: HEADER LLAVE_A PACKAGE IDENT PUNTO_COMA LLAVE_C
            {
            match(input,HEADER,FOLLOW_HEADER_in_cabecera101); 

            match(input,LLAVE_A,FOLLOW_LLAVE_A_in_cabecera103); 

            match(input,PACKAGE,FOLLOW_PACKAGE_in_cabecera105); 

            match(input,IDENT,FOLLOW_IDENT_in_cabecera107); 

            match(input,PUNTO_COMA,FOLLOW_PUNTO_COMA_in_cabecera109); 

            match(input,LLAVE_C,FOLLOW_LLAVE_C_in_cabecera111); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "cabecera"



    // $ANTLR start "reglas"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:34:1: reglas : REGLA DOS_PUNTOS contenido_regla PUNTO_COMA ;
    public final void reglas() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:34:7: ( REGLA DOS_PUNTOS contenido_regla PUNTO_COMA )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:34:9: REGLA DOS_PUNTOS contenido_regla PUNTO_COMA
            {
            match(input,REGLA,FOLLOW_REGLA_in_reglas118); 

            match(input,DOS_PUNTOS,FOLLOW_DOS_PUNTOS_in_reglas120); 

            pushFollow(FOLLOW_contenido_regla_in_reglas122);
            contenido_regla();

            state._fsp--;


            match(input,PUNTO_COMA,FOLLOW_PUNTO_COMA_in_reglas124); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "reglas"



    // $ANTLR start "contenido_regla"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:36:1: contenido_regla : ( regla_simple | regla_condicional )* ;
    public final void contenido_regla() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:36:16: ( ( regla_simple | regla_condicional )* )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:36:18: ( regla_simple | regla_condicional )*
            {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:36:18: ( regla_simple | regla_condicional )*
            loop4:
            do {
                int alt4=3;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==PARENTESIS_A) ) {
                    int LA4_2 = input.LA(2);

                    if ( ((LA4_2 >= REGLA && LA4_2 <= TOKEN)) ) {
                        switch ( input.LA(3) ) {
                        case ASTERISCO:
                        case INTERROG:
                            {
                            int LA4_5 = input.LA(4);

                            if ( (LA4_5==OR) ) {
                                alt4=2;
                            }
                            else if ( (LA4_5==PARENTESIS_A||(LA4_5 >= PUNTO_COMA && LA4_5 <= TOKEN)) ) {
                                alt4=1;
                            }


                            }
                            break;
                        case OR:
                            {
                            alt4=2;
                            }
                            break;
                        case PARENTESIS_A:
                        case PARENTESIS_C:
                        case PUNTO_COMA:
                        case REGLA:
                        case TOKEN:
                            {
                            alt4=1;
                            }
                            break;

                        }

                    }


                }
                else if ( ((LA4_0 >= REGLA && LA4_0 <= TOKEN)) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:36:19: regla_simple
            	    {
            	    pushFollow(FOLLOW_regla_simple_in_contenido_regla132);
            	    regla_simple();

            	    state._fsp--;


            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:36:32: regla_condicional
            	    {
            	    pushFollow(FOLLOW_regla_condicional_in_contenido_regla134);
            	    regla_condicional();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop4;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "contenido_regla"



    // $ANTLR start "regla_simple"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:1: regla_simple : ( PARENTESIS_A )? ( TOKEN | REGLA ) ( PARENTESIS_C )? ( ASTERISCO | INTERROG )? ;
    public final void regla_simple() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:13: ( ( PARENTESIS_A )? ( TOKEN | REGLA ) ( PARENTESIS_C )? ( ASTERISCO | INTERROG )? )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:15: ( PARENTESIS_A )? ( TOKEN | REGLA ) ( PARENTESIS_C )? ( ASTERISCO | INTERROG )?
            {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:15: ( PARENTESIS_A )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==PARENTESIS_A) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:15: PARENTESIS_A
                    {
                    match(input,PARENTESIS_A,FOLLOW_PARENTESIS_A_in_regla_simple143); 

                    }
                    break;

            }


            if ( (input.LA(1) >= REGLA && input.LA(1) <= TOKEN) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:43: ( PARENTESIS_C )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==PARENTESIS_C) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:43: PARENTESIS_C
                    {
                    match(input,PARENTESIS_C,FOLLOW_PARENTESIS_C_in_regla_simple152); 

                    }
                    break;

            }


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:38:57: ( ASTERISCO | INTERROG )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==ASTERISCO||LA7_0==INTERROG) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:
                    {
                    if ( input.LA(1)==ASTERISCO||input.LA(1)==INTERROG ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "regla_simple"



    // $ANTLR start "regla_condicional"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:1: regla_condicional : PARENTESIS_A ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? ( OR ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? ) PARENTESIS_C ( ASTERISCO | INTERROG )? ;
    public final void regla_condicional() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:18: ( PARENTESIS_A ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? ( OR ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? ) PARENTESIS_C ( ASTERISCO | INTERROG )? )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:20: PARENTESIS_A ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? ( OR ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? ) PARENTESIS_C ( ASTERISCO | INTERROG )?
            {
            match(input,PARENTESIS_A,FOLLOW_PARENTESIS_A_in_regla_condicional167); 

            if ( (input.LA(1) >= REGLA && input.LA(1) <= TOKEN) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:47: ( ASTERISCO | INTERROG )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==ASTERISCO||LA8_0==INTERROG) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:
                    {
                    if ( input.LA(1)==ASTERISCO||input.LA(1)==INTERROG ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:69: ( OR ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )? )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:70: OR ( TOKEN | REGLA ) ( ASTERISCO | INTERROG )?
            {
            match(input,OR,FOLLOW_OR_in_regla_condicional183); 

            if ( (input.LA(1) >= REGLA && input.LA(1) <= TOKEN) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:87: ( ASTERISCO | INTERROG )?
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==ASTERISCO||LA9_0==INTERROG) ) {
                alt9=1;
            }
            switch (alt9) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:
                    {
                    if ( input.LA(1)==ASTERISCO||input.LA(1)==INTERROG ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            }


            match(input,PARENTESIS_C,FOLLOW_PARENTESIS_C_in_regla_condicional199); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:40:123: ( ASTERISCO | INTERROG )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==ASTERISCO||LA10_0==INTERROG) ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintANTLR.g:
                    {
                    if ( input.LA(1)==ASTERISCO||input.LA(1)==INTERROG ) {
                        input.consume();
                        state.errorRecovery=false;
                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        throw mse;
                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "regla_condicional"

    // Delegated rules


 

    public static final BitSet FOLLOW_analizador_in_entrada47 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_opciones_in_entrada49 = new BitSet(new long[]{0x0000000020000802L});
    public static final BitSet FOLLOW_cabecera_in_entrada51 = new BitSet(new long[]{0x0000000020000002L});
    public static final BitSet FOLLOW_reglas_in_entrada54 = new BitSet(new long[]{0x0000000020000002L});
    public static final BitSet FOLLOW_set_in_analizador62 = new BitSet(new long[]{0x0000000000000400L});
    public static final BitSet FOLLOW_GRAMMAR_in_analizador68 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_IDENT_in_analizador70 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_PUNTO_COMA_in_analizador72 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_OPTIONS_in_opciones79 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_LLAVE_A_in_opciones81 = new BitSet(new long[]{0x0000000000081000L});
    public static final BitSet FOLLOW_IDENT_in_opciones84 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_IGUAL_in_opciones86 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_IDENT_in_opciones88 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_PUNTO_COMA_in_opciones90 = new BitSet(new long[]{0x0000000000081000L});
    public static final BitSet FOLLOW_LLAVE_C_in_opciones94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HEADER_in_cabecera101 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_LLAVE_A_in_cabecera103 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_PACKAGE_in_cabecera105 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_IDENT_in_cabecera107 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_PUNTO_COMA_in_cabecera109 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_LLAVE_C_in_cabecera111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_REGLA_in_reglas118 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_DOS_PUNTOS_in_reglas120 = new BitSet(new long[]{0x0000000072000000L});
    public static final BitSet FOLLOW_contenido_regla_in_reglas122 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_PUNTO_COMA_in_reglas124 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_regla_simple_in_contenido_regla132 = new BitSet(new long[]{0x0000000062000002L});
    public static final BitSet FOLLOW_regla_condicional_in_contenido_regla134 = new BitSet(new long[]{0x0000000062000002L});
    public static final BitSet FOLLOW_PARENTESIS_A_in_regla_simple143 = new BitSet(new long[]{0x0000000060000000L});
    public static final BitSet FOLLOW_set_in_regla_simple146 = new BitSet(new long[]{0x0000000004004012L});
    public static final BitSet FOLLOW_PARENTESIS_C_in_regla_simple152 = new BitSet(new long[]{0x0000000000004012L});
    public static final BitSet FOLLOW_PARENTESIS_A_in_regla_condicional167 = new BitSet(new long[]{0x0000000060000000L});
    public static final BitSet FOLLOW_set_in_regla_condicional169 = new BitSet(new long[]{0x0000000000804010L});
    public static final BitSet FOLLOW_OR_in_regla_condicional183 = new BitSet(new long[]{0x0000000060000000L});
    public static final BitSet FOLLOW_set_in_regla_condicional185 = new BitSet(new long[]{0x0000000004004010L});
    public static final BitSet FOLLOW_PARENTESIS_C_in_regla_condicional199 = new BitSet(new long[]{0x0000000000004012L});

}